home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / Librarys / MMULib / MMULib.readme < prev    next >
Text File  |  2000-05-04  |  12KB  |  257 lines

  1. Short:    Library to ctrl the MC68K MMUs
  2. Uploader: thor@math.tu-berlin.de (Thomas Richter)
  3. Author:   thor@math.tu-berlin.de (Thomas Richter)
  4. Type:     util/libs
  5. Requires: Os 2.04, a 68020/68851, 68030, 68040 or 68060 with a working MMU
  6. Version:  42.2
  7.  
  8. NOTE:    The developer information went now into the "MuManual" archive, this
  9.     is the "user only" distribution.
  10.  
  11. -----------------------------------------------------------------------------
  12.  
  13. Purpose and goal of this library:
  14.  
  15. The mmu.library is a basis for MMU (memory management) related functions the 
  16. MC68K family can perform. Up to now certain hacks are available that program 
  17. the MMU themselves (Enforcer,CyberGuard,GuardianAngle,SetCPU,Shapeshifter,
  18. VMM,GigaMem...). 
  19. It's therefore not unexpected that these tools conflict with each other.
  20. There's up to now no Os support for the MMU at all - the gap this mmu.library
  21. fills.
  22.  
  23. The goal is to provide a basis of functions to address and program the MMU in
  24. a hardware independent, Os friendly fashion. Hence, the new version of the
  25. Enforcer, called MuForce, will work together with virtual memory, and others.
  26.  
  27. The mmu.library is also the basis for a virtual memory project, the 
  28. memory.library. Even though the mmu.library does not provide virtual memory
  29. itself, it builds the basics to allow an easy implementation and to avoid the
  30. hacks required by other implementations so far.
  31.  
  32. ------------------------------------------------------------------------------
  33.  
  34.  
  35. Changes since V42.1
  36. ---------------------
  37.     
  38.     - The 42.1 release automatically marked all hardware pages as
  39.       cacheinhibited serialized. Looks like even that was too much for
  40.       some hardware boards, I don't know why. This should be the proper
  41.       default anyhow. I disabled this again, even though this means,
  42.       as for 42.0 and before, that a MMU-Configuration is *mandatory*
  43.       if you use the library as "stand-alone" instead on top of a third-
  44.       party 68040/68060 library.
  45.  
  46. Changes since V42.0:
  47. ---------------------
  48.  
  49.     - Installation: P5Init, PPCIdentify, P5Identify reworked again, it
  50.       enables now explicitly the bus error generation of the A4000
  51.       motherboard resources.
  52.     - Installation Rexx scripts: Added a "NoP5" keyword to disable ex-
  53.       plicitly the P5 identification steps which seem to be problematic
  54.       for some boards for reasons that are beyond me.
  55.     - MuManual: Fixed some typos, corrected some mistakes, clarified some
  56.       formulations. Thanks to Etienne Voigt for proofreading!
  57.     - Organization: The "MMULib" archive is now the user archive, all
  58.       developer information went into the "MuManual" archive, including
  59.       the autodocs, the includes, the bmaps and some example sources.
  60.       This will help to keep the archive short.
  61.     - mmulib: The CurrentContext() function forgot to Forbid() properly.
  62.       Note that you still need a Forbid() bracketing or the result code
  63.       might be pretty useless. The propability that this broke code is
  64.       very low, though.
  65.     - mmulib: GetMappingProperties() was simply broken in V42.0 and below.
  66.       Sorry, this got fixed. This function hasn't been used yet, so this
  67.       bug was left unnoticed.
  68.     - Included a debug version of the library in the MuManual archive.
  69.     - BlizKick: In order to avoid a yellow alert, either BlizKick must be
  70.       modified or must be run behind SetPatch. The reason for the alert
  71.       is that BlizKick opens the mmu.library before the 68060/68040 lib
  72.       is open, which is and never has been legal. I just added an explicit
  73.       check for this condition in V42 because too many people ignored it.
  74.       As I said, "no discussion". This is a side effect of how the library
  75.       works and has to work.
  76.  
  77.  
  78. Changes since V41.xx:
  79. ---------------------
  80.  
  81.     - mmu.library: Added more error checking for the startup code, esp.
  82.       the MMU-Configuration file. Added a check for proper config-
  83.       uration, i.e. whether the library was (incorrectly) loaded in
  84.       front of SetPatch.
  85.     - Added a new function: RunOldConfig(). It runs a small supervisor
  86.       routine with the boot MMU configuration.
  87.     - 68040.library: Added an explicit check for correct configuration,
  88.       it will generate a requester in case no 68040 is available.
  89.     - MuGuardianAngel: Fixed a bug in the mung-wall check which could 
  90.       have reported one additional mung-wall damage in case the front 
  91.       wall was found defective. Added a workaround for a possible 
  92.       68060 firmware bug, the "U" bit is now always set in the MMU
  93.       descriptors to avoid unnecessary MMU writebacks.
  94.     - In case you see MuGuardianAngel hits of the z3scsi.device, run
  95.       the FixCybAccess program. It will work around the z3scsi.device 
  96.       hits as well. Thanks, Helmut.
  97.     - MuMove4K PREPAREEMUL moves now the low chip memory end to the
  98.       16K line, not to the 8K line. This might fix some Fusion
  99.       problems. Thanks, Pavel.
  100.     - Improved the error messages of MuFastZero a little bit.
  101.     - Reworked P5Identify and PPCIdentify to make these two more
  102.       stable.
  103.     - Added another external MMU setup command, P5Init. It should 
  104.       keep care about all P5 specific cache settings and should
  105.       setup the PPC and the BOOT-MMU-Port automatically. All manual
  106.       P5 specific entries in the MMU-Configuration except graphic 
  107.       board cachings are obsolete now and should be replaced by
  108.       P5Init.
  109.     - Rewrote both setup scripts to reflect the changes in the P5
  110.       setup logic, i.e. ScanMMUPort has been replaced by P5Init and
  111.       all P5 specific cache settings have been removed.
  112.     - Added stack increasement patches for the mfm.device (CrossDos)
  113.       and IPrefs 40.7 in case you do not yet use Os 3.5. Thanks Gene.
  114.     - Added a fix for two bugs in ramlib. First, its stack is too
  115.       low. Second, it uses SIGF_SINGLE as message bit for its process
  116.       port which could cause some race conditions with semaphores in
  117.       library setup code.
  118.     - The MuGuardianAngel patch report and automatic IRQ check have 
  119.       been reworked a bit. The "patches overwritten" message is now
  120.       no longer periodically generated, but will be suspended up to
  121.       the next "real" hit where another message will be generated.
  122.     - The MuGuardianAngel automatic IRQ stack was not only useless,
  123.       but in fact broken. This does not go for the stack check of the
  124.       exec memory handling functions which was and still is fine.
  125.       Good enough it was recommended to leave the IRQ check disabled. 
  126.       "Nearly out of stack" warnings were not generated by the IRQ code 
  127.       at all, and the stack overflow and stack underflow messages
  128.       usually report "bogus" hits due to its construction. Stack 
  129.       snooping is now by default ENABLED, except for "out of bounds"
  130.       reports, which still requires STACKSNOOP option explicitly.
  131.       Added an option to adjust the minimal stack size for the
  132.       "Nearly out of stack" reports, but it can be made only larger,
  133.       i.e. more "picky".
  134.     - mmu.library: The pre-42 releases only marked the zero page as
  135.       non-blank which might have caused problems for some Mac emu-
  136.       lators. It now marks the lowest 32K as valid. Former versions
  137.       set it to "cacheinhibit", it is now set to "cacheinhibit nonser-
  138.       ialized imprecise".
  139.     - mmu.library: The low-memory limit up to which the mmu.library
  140.       has to software-emulate accesses has been made adjustable.
  141.     - mmu.library: Due to a bug in the high-level mapping list manage-
  142.       ment, MAPP_INDIRECT did not work correctly.
  143.     - mmu.library: BuildIndirect() performs now a few more consistency
  144.       checks and is less restrictive for MAPP_INVALID and MAPP_SWAPPED.
  145.     - Updated the DMAInitiate() function, it provides now a return code
  146.       instead going guru if it doesn't like the parameters.
  147.     - Updated MuOmniSCSIPatch to reflect the changes made to 
  148.       DMAInitiate().
  149.     - Fixed many documentation errors in mmu.doc, updated and checked
  150.       exception.doc again.
  151.     - Included a demo program for indirect descriptor handling.
  152.     - Speedup SetIndirect() somewhat by placing this routine directly
  153.       in the MMU drivers as a "native" operation.
  154.     - Added a new LVO "SetIndirectArray()" to set more than one
  155.       indirect descriptor at once. Should be *very* fast.
  156.     - The startup command "DescriptorCacheInhibit" did not pass a proper
  157.       result code on success and hence caused a yellow alert. This bug
  158.       was only noticable in some of the V42